home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / swtools / libdwarf / pro_frame.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  1.8 KB  |  81 lines

  1. /*
  2.     pro_frame.h
  3.     $Revision: 1.8 $    $Date: 1993/08/05 23:28:50 $    
  4.     $Source : $
  5.  
  6.     pro_frame.h contains definitions used to create and store
  7.     debug_frame information.
  8. */
  9.  
  10. /*
  11.     Largest register value that can be coded into
  12.     the opcode since there are only 6 bits in the
  13.     register field.
  14. */
  15. #define MAX_6_BIT_VALUE        0x3f
  16.  
  17. /*
  18.     This struct holds debug_frame instructions
  19. */
  20. typedef struct Dwarf_P_Frame_Pgm_s     *Dwarf_P_Frame_Pgm;
  21.  
  22. struct Dwarf_P_Frame_Pgm_s {
  23.     Dwarf_Ubyte        dfp_opcode;    /* opcode - includes reg # */
  24.     char        *dfp_args;    /* operands */
  25.     int            dfp_nbytes;    /* number of bytes in args */
  26.     Dwarf_P_Frame_Pgm    dfp_next;
  27. };
  28.  
  29.  
  30. /*
  31.     This struct has cie related information. Used to gather data 
  32.     from user program, and later to transform to disk form
  33. */
  34. struct Dwarf_P_Cie_s {
  35.     Dwarf_Ubyte        cie_version;
  36.     char             *cie_aug;    /* augmentation */
  37.     Dwarf_Ubyte        cie_code_align;    /* alignment of code */
  38.     Dwarf_Sbyte        cie_data_align;    
  39.     Dwarf_Ubyte        cie_ret_reg;    /* return register # */
  40.     char            *cie_inst;    /* initial instruction */
  41.     long            cie_inst_bytes;
  42.                         /* no of init_inst */
  43.     Dwarf_P_Cie        cie_next;
  44. };
  45.  
  46.  
  47. /* producer fields */
  48. struct Dwarf_P_Fde_s {
  49.         /* number of bytes */
  50.     Dwarf_Unsigned        fde_length;    
  51.  
  52.         /* function/subr die for this fde */
  53.     Dwarf_P_Die        fde_die;    
  54.  
  55.         /* index to asso. cie */
  56.     Dwarf_Word         fde_cie;    
  57.  
  58.         /* address of first location */
  59.     Dwarf_Addr        fde_initloc;    
  60.  
  61.         /* relocation section symbol ptr */
  62.     Dwarf_Unsigned        fde_r_symidx;    
  63.  
  64.         /* bytes of instr for this fde */
  65.     Dwarf_Addr        fde_addr_range;    
  66.  
  67.         /* instructions */
  68.     Dwarf_P_Frame_Pgm    fde_inst;    
  69.  
  70.         /* number of instructions */ 
  71.     long            fde_n_inst;    
  72.  
  73.         /* number of bytes of inst */
  74.     long            fde_n_bytes;    
  75.  
  76.         /* pointer to last inst */
  77.     Dwarf_P_Frame_Pgm    fde_last_inst;    
  78.  
  79.     Dwarf_P_Fde        fde_next;
  80. };
  81.